Add case_strncmp for use by mkshort to fix the "by" capitalization problem.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 21 Jan 2005 21:07:23 +0000 (21:07 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 21 Jan 2005 21:07:23 +0000 (21:07 +0000)
gpsbabel/defs.h
gpsbabel/mkshort.c

index e2d9c491613dfd2fac4f0e1d126a1e85ab7f7998..167d39d4e069e312bef0e0e5e52b711be4e7a289 100644 (file)
@@ -492,6 +492,7 @@ void xfprintf(const char *errtxt, FILE *stream, const char *format, ...);
 void xfputs(const char *errtxt, const char *s, FILE *stream);
 
 int case_ignore_strcmp(const char *s1, const char *s2);
+int case_ignore_strncmp(const char *s1, const char *s2, int n);
 
 char *strsub(const char *s, const char *search, const char *replace);
 char *gstrsub(const char *s, const char *search, const char *replace);
index 5f40e18033cba6e3e9c88d8a78772c1fc09cbf57..3a9c787fa7d8b97df03e8a5ea918f2c341a5951c 100644 (file)
@@ -149,18 +149,23 @@ mkshort_del_handle(void *h)
        mkshort_handle *hdr = h;
        int i;
 
-       if (hdr) {
-               for (i = 0; i < PRIME; i++) {
-                       queue *e, *t;
-                       QUEUE_FOR_EACH(&hdr->namelist[i], e, t) {
-                               uniq_shortname *s = (uniq_shortname *) e;
-                               dequeue(e);
-                               xfree(s->orig_shortname);
-                               xfree(s);
+       if (!hdr)
+               return;
+
+       for (i = 0; i < PRIME; i++) {
+               queue *e, *t;
+               QUEUE_FOR_EACH(&hdr->namelist[i], e, t) {
+                       uniq_shortname *s = (uniq_shortname *) e;
+                       if (global_opts.verbose_status >= 2 && s->conflictctr) {
+                               fprintf(stderr, "%d Output name conflicts: '%s'\n",  
+                                       s->conflictctr, s->orig_shortname);
                        }
+                       dequeue(e);
+                       xfree(s->orig_shortname);
+                       xfree(s);
                }
-               xfree(hdr);
        }
+       xfree(hdr);
 }
 
 /*
@@ -280,7 +285,7 @@ mkshort(void *h, const char *istring)
        nstring = xxstrdup(ostring, file, line);
        l = strlen (nstring);
        while (l > 0) {
-               if (strncmp(&nstring[l], " by ",4) == 0)  {
+               if (case_ignore_strncmp(&nstring[l], " by ",4) == 0)  {
                        nstring[l] = 0;
                        break;
                }